在Java中,Collection 和 Map 都是用來存儲多個元素的介面(interfaces)。它們都屬於Java集合框架(Java Collections Framework)的一部分,提供了不同的方式來組織和操作數據。
Collection(集合)
Collection 接口代表一組物件,這些物件通常被稱為元素。Collection 介面包含了常見的集合操作,例如添加元素、刪除元素、檢查元素是否存在、獲取集合大小等。Collection 的主要子接口包括:
List:有序集合,允許重複元素,可以根據索引訪問元素。
Set:無序集合,不允許重複元素,主要用於確保元素的唯一性。
Queue:一種特殊的集合,通常用於實現先進先出(FIFO)的數據結構。
Map(映射)
Map 接口代表映射(mapping),它存儲的是鍵值對(key-value pairs)。每個鍵對應一個值,鍵是唯一的,而值可以重複。Map 接口提供了根據鍵查找值、插入鍵值對、刪除鍵值對等操作。常見的 Map 實現類有:
HashMap:基於哈希表的實現,提供快速的查找性能。
TreeMap:基於紅黑樹(Red-Black Tree)的實現,提供有序的鍵值對。
LinkedHashMap:基於哈希表和鏈表的實現,保持插入順序。
簡單來說,Collection 是用來存儲一組元素的介面,而 Map 是用來存儲鍵值對的介面。你可以根據項目的需求選擇適合的集合類型來存儲和操作數據。
Map範例
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
// 創建一個HashMap
Map<String, Integer> map = new HashMap<>();
// 將鍵值對添加到映射
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
// 根據鍵查找值並打印
System.out.println("Value for key 'Two': " + map.get("Two"));
// 遍歷映射並打印每個鍵值對
System.out.println("Map Entries:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}